package com.wyix;

import java.lang.reflect.Method;

/**
 * @author wangdx
 * @since 2025/8/5
 */
public class MethodDemo {
    public static void main(String[] args) throws Exception {
        User user = new User();
        Class<?> userClass = user.getClass();

        // 1. 调用公共方法
        Method getNameMethod = userClass.getMethod("getName");
        String name = (String) getNameMethod.invoke(user);

        // 2. 调用私有方法
        Method setNameMethod = userClass.getDeclaredMethod("setName", String.class);
        setNameMethod.setAccessible(true); // 允许访问私有方法
        setNameMethod.invoke(user, "Bob"); // 调用方法

        System.out.println(user.getName()); // Bob
        name = (String) getNameMethod.invoke(user);
        System.out.println(name); // Bob
    }
}
